home *** CD-ROM | disk | FTP | other *** search
Wrap
package koala.dynamicjava.classinfo; import java.lang.reflect.Modifier; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import koala.dynamicjava.tree.ClassDeclaration; import koala.dynamicjava.tree.ConstructorDeclaration; import koala.dynamicjava.tree.ConstructorInvocation; import koala.dynamicjava.tree.Expression; import koala.dynamicjava.tree.FieldDeclaration; import koala.dynamicjava.tree.FormalParameter; import koala.dynamicjava.tree.Identifier; import koala.dynamicjava.tree.InterfaceDeclaration; import koala.dynamicjava.tree.MethodDeclaration; import koala.dynamicjava.tree.Node; import koala.dynamicjava.tree.QualifiedName; import koala.dynamicjava.tree.ReferenceType; import koala.dynamicjava.tree.SimpleAssignExpression; import koala.dynamicjava.tree.visitor.VisitorObject; class TreeClassInfo$MembersVisitor extends VisitorObject { // $FF: synthetic field private final TreeClassInfo this$0; public Object visit(ClassDeclaration var1) { var1.setProperty("declaringClass", this.this$0); TreeClassInfo.access$6(this.this$0).add(TreeClassInfo.access$5(this.this$0).addClassInfo(this.this$0.getName() + "$" + var1.getName(), var1)); return null; } public Object visit(InterfaceDeclaration var1) { var1.setProperty("declaringClass", this.this$0); TreeClassInfo.access$6(this.this$0).add(TreeClassInfo.access$5(this.this$0).addClassInfo(this.this$0.getName() + "$" + var1.getName(), var1)); return null; } public Object visit(FieldDeclaration var1) { TreeClassInfo.access$7(this.this$0).put(var1.getName(), new TreeFieldInfo(var1, TreeClassInfo.access$5(this.this$0), this.this$0)); return null; } public Object visit(ConstructorDeclaration var1) { if (var1.getConstructorInvocation() == null) { ConstructorInvocation var2 = new ConstructorInvocation((Expression)null, (List)null, true); var1.setConstructorInvocation(var2); } ClassInfo var6 = this.this$0.getDeclaringClass(); if (!TreeClassInfo.access$0(this.this$0).hasProperty("treeVisited") && var6 != null && !Modifier.isStatic(this.this$0.getModifiers())) { ReferenceType var3 = new ReferenceType(var6.getName()); var1.getParameters().add(0, new FormalParameter(false, var3, "param$0")); } if (var6 != null && !Modifier.isStatic(this.this$0.getModifiers())) { LinkedList var4 = new LinkedList(); var4.add(new Identifier("this$" + TreeClassInfo.access$2(this.this$0))); LinkedList var5 = new LinkedList(); var5.add(new Identifier("param$0")); SimpleAssignExpression var7 = new SimpleAssignExpression(new QualifiedName(var4), new QualifiedName(var5)); var1.getStatements().add(0, var7); } TreeClassInfo.access$3(this.this$0).add(new TreeConstructorInfo(var1, TreeClassInfo.access$5(this.this$0), this.this$0)); return null; } public Object visit(MethodDeclaration var1) { Object var2 = (List)TreeClassInfo.access$8(this.this$0).get(var1.getName()); if (var2 == null) { var2 = new LinkedList(); } ((List)var2).add(new TreeMethodInfo(var1, TreeClassInfo.access$5(this.this$0), this.this$0)); TreeClassInfo.access$8(this.this$0).put(var1.getName(), var2); TreeClassInfo var10000 = this.this$0; TreeClassInfo.access$10(var10000, TreeClassInfo.access$9(var10000) + 1); return null; } TreeClassInfo$MembersVisitor(TreeClassInfo var1) { this.this$0 = var1; if (!this.this$0.isArray()) { Iterator var2 = TreeClassInfo.access$0(this.this$0).getMembers().iterator(); while(var2.hasNext()) { ((Node)var2.next()).acceptVisitor(this); } if (!TreeClassInfo.access$0(this.this$0).hasProperty("treeVisited")) { ClassInfo var3 = this.this$0.getDeclaringClass(); if (var3 != null && !Modifier.isStatic(this.this$0.getModifiers())) { FieldDeclaration var4 = new FieldDeclaration(1, new ReferenceType(var3.getName()), "this$" + TreeClassInfo.access$2(this.this$0), (Expression)null); var4.acceptVisitor(this); TreeClassInfo.access$0(this.this$0).getMembers().add(var4); } if (TreeClassInfo.access$3(this.this$0).size() == 0 && !this.this$0.isInterface() && !this.this$0.isPrimitive()) { ConstructorInvocation var6 = new ConstructorInvocation((Expression)null, (List)null, true); ConstructorDeclaration var5 = new ConstructorDeclaration(1, TreeClassInfo.access$0(this.this$0).getName(), new LinkedList(), new LinkedList(), var6, new LinkedList()); var5.acceptVisitor(this); TreeClassInfo.access$0(this.this$0).getMembers().add(var5); } } } } }